package com.hmkj.core.api.umf;

import com.hmkj.common.utils.*;
import com.hmkj.core.service.system.ConfigureService;
import com.umpay.api.common.ReqData;
import com.umpay.api.exception.ReqDataException;
import com.umpay.api.paygate.v40.Mer2Plat_v40;
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;

import java.math.BigDecimal;
import java.util.*;

/**
 * 联动优势 接口
 *
 * @author Created by 陌上人 on 2077/7/7 16:58.
 */
public class UmfEndPoint {

    @Autowired
    static ConfigureService configureService;

    /**
     * 商户ID
     */
    public static String MERCHANT_ID = "50564";

    /**
     * 请求基础地址-正式环境  (提现)
     */
    public static String real_fukuan_request_url = "http://pay.soopay.net/spay/pay/payservice.do";
    /**
     * 请求基础地址-测试环境 (提现)
     */
    public static String test_fukuan_request_url = "http://pay.soopay.net/spay/pay/payservice.do";

    /**
     * h5收银台接口名称
     */
    public static String service_h5_pay = "pay_req_h5_frontpage";

    /**
     * u付直连付款接口名称
     */
    public static String service_fukuan = "transfer_direct_req";

    /**
     * 查询商户用户已签约的银行列表
     */
    public static String service_mer_cust_bank_shortcut = "query_mercust_bank_shortcut";

    /**
     * 查询商户支持的银行列表
     */
    public static String service_mer_bank_shortcut = "query_mer_bank_shortcut";




    /**
     * 付款请求
     * @param reqData 处理后的请求参数
     * @return 相应信息
     */
    public static String doFuKuanRequest(ReqData reqData) {
        String url = reqData.getUrl();
        try {
            return HttpClientUtils.httpGet(url);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;

    }

    /**
     * 生成跳转到联动优势的h5收银台的html代码
     * @return html
     */
    public static String generateH5PayHtml(Map<String, String> params) {
        //生成签名
        try {
            ReqData reqData = Mer2Plat_v40.makeReqDataByGet(params);
            return reqData.getUrl();
        } catch (ReqDataException e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 获取商户用户已签约的银行列表
     * @param params   post参数列表
     * @param reqData  请求参数
     * @return 响应参数
     */
    public static String queryMerCustBankShortcut(Map<String, Object> params,ReqData reqData) {
        params.put("sign",reqData.getSign());
        String url = reqData.getUrl();
        try {
            return HttpClientUtils.httpPost(url,params);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    /**
     * 获取商户支持的银行列表
     * @param params   post参数列表
     * @param reqData  请求参数
     * @return 响应参数
     */
    public static String queryMerBankShortcut(Map<String, Object> params,ReqData reqData) {
        params.put("sign",reqData.getSign());
        String url = reqData.getUrl();
        try {
            return HttpClientUtils.httpPost(url,params);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
